// DELPHI VERSION

{$IFDEF VER140}
  {$DEFINE DELPHI6}
  {$DEFINE DELPHI6_UP}
{$ENDIF}

{$IFDEF VER150}
  {$DEFINE DELPHI7}
  {$DEFINE DELPHI7_UP}
{$ENDIF}

{$IFDEF VER160}
  {$DEFINE DELPHI8}
  {$DEFINE DELPHI8_UP}
{$ENDIF}

{$IFDEF VER170}
  {$DEFINE DELPHI2005}
  {$DEFINE DELPHI2005_UP}
{$ENDIF}

{$IFDEF VER180}
  {$DEFINE DELPHI2006}
  {$DEFINE DELPHI2006_UP}
{$ENDIF}

{$IFDEF VER185}
  {$DEFINE DELPHI2007}
  {$DEFINE DELPHI2007_UP}
{$ENDIF}

{$IFDEF VER200}
  {$DEFINE DELPHI2009}
  {$DEFINE DELPHI2009_UP}
{$ENDIF}

{$IFDEF VER210}
  {$DEFINE DELPHI2010}
  {$DEFINE DELPHI2010_UP}
{$ENDIF}

{$IFDEF VER220}
  {$DEFINE DELPHIXE}
  {$DEFINE DELPHIXE_UP}
{$ENDIF}

{$IFDEF VER230}
  {$DEFINE DELPHIXE2}
  {$DEFINE DELPHIXE2_UP}
{$ENDIF}

{$IFDEF VER240}
  {$DEFINE DELPHIXE3}
  {$DEFINE DELPHIXE3_UP}
{$ENDIF}

{$IFDEF VER250}
  {$DEFINE DELPHIXE4}
  {$DEFINE DELPHIXE4_UP}
{$ENDIF}

{$IFDEF VER260}
  {$DEFINE DELPHIXE5}
  {$DEFINE DELPHIXE5_UP}
{$ENDIF}

{$IFDEF VER270}
  {$DEFINE DELPHIXE6}
  {$DEFINE DELPHIXE6_UP}
{$ENDIF}

{$IFDEF VER280}
  {$DEFINE DELPHIXE7}
  {$DEFINE DELPHIXE7_UP}
{$ENDIF}

{$IFDEF VER290}
  {$DEFINE DELPHIXE8}
  {$DEFINE DELPHIXE8_UP}
{$ENDIF}

{$IFDEF VER300}
  {$DEFINE DELPHI10}
  {$DEFINE DELPHI10_UP}
{$ENDIF}

{$IFDEF VER310}
  {$DEFINE DELPHI10_1}
  {$DEFINE DELPHI10_1_UP}
{$ENDIF}

{$IFDEF VER320}
  {$DEFINE DELPHI10_2}
  {$DEFINE DELPHI10_2_UP}
{$ENDIF}

{$IFDEF VER330}
  {$DEFINE DELPHI10_3}
  {$DEFINE DELPHI10_3_UP}
{$ENDIF}

{$IFDEF DELPHI10_3_UP}
  {$DEFINE DELPHI10_2_UP}
{$ENDIF}

{$IFDEF DELPHI10_2_UP}
  {$DEFINE DELPHI10_1_UP}
{$ENDIF}

{$IFDEF DELPHI10_1_UP}
  {$DEFINE DELPHI10_UP}
{$ENDIF}

{$IFDEF DELPHI10_UP}
  {$DEFINE DELPHIXE8_UP}
{$ENDIF}

{$IFDEF DELPHIXE8_UP}
  {$DEFINE DELPHIXE7_UP}
{$ENDIF}

{$IFDEF DELPHIXE7_UP}
  {$DEFINE DELPHIXE6_UP}
{$ENDIF}

{$IFDEF DELPHIXE6_UP}
  {$DEFINE DELPHIXE5_UP}
{$ENDIF}

{$IFDEF DELPHIXE5_UP}
  {$DEFINE DELPHIXE4_UP}
{$ENDIF}

{$IFDEF DELPHIXE4_UP}
  {$DEFINE DELPHIXE3_UP}
{$ENDIF}

{$IFDEF DELPHIXE3_UP}
  {$DEFINE DELPHIXE2_UP}
{$ENDIF}

{$IFDEF DELPHIXE2_UP}
  {$DEFINE DELPHIXE_UP}
{$ENDIF}

{$IFDEF DELPHIXE_UP}
  {$DEFINE DELPHI2010_UP}
{$ENDIF}

{$IFDEF DELPHI2010_UP}
  {$DEFINE DELPHI2009_UP}
{$ENDIF}

{$IFDEF DELPHI2009_UP}
  {$DEFINE DELPHI2007_UP}
{$ENDIF}

{$IFDEF DELPHI2007_UP}
  {$DEFINE DELPHI2006_UP}
{$ENDIF}

{$IFDEF DELPHI2006_UP}
  {$DEFINE DELPHI2005_UP}
{$ENDIF}

{$IFDEF DELPHI2005_UP}
  {$DEFINE DELPHI8_UP}
{$ENDIF}

{$IFDEF DELPHI8_UP}
  {$DEFINE DELPHI7_UP}
{$ENDIF}

{$IFDEF DELPHI7_UP}
  {$DEFINE DELPHI6_UP}
{$ENDIF}

// DELPHI FEATURES

{$IFDEF DELPHI2005_UP}
  {$DEFINE SUPPORTS_FOR_IN}
  {$DEFINE SUPPORTS_INLINE}
  {$DEFINE SUPPORTS_NESTED_CONSTANTS}
  {$DEFINE SUPPORTS_NESTED_TYPES}
{$ENDIF}

{$IFDEF DELPHI2006_UP}
  {$DEFINE SUPPORTS_STATIC}
{$ENDIF}

{$IFDEF DELPHI2009_UP}
  {$DEFINE SUPPORTS_UNICODE}
  {$DEFINE SUPPORTS_GENERICS}
  {$DEFINE SUPPORTS_UINT64}
{$ENDIF}

{$IFDEF DELPHI2010_UP}
  {$DEFINE SUPPORTS_RTTI}
  {$DEFINE SUPPORTS_RTTI2}
  {$DEFINE SUPPORTS_ANONYMOUS_METHOD}
{$ENDIF}

// FREE PASCAL

{$IFDEF FPC}
  {$DEFINE SUPPORTS_UINT64}
  {$DEFINE SUPPORTS_RTTI2}
  {$MODE OBJFPC}
  {$INLINE ON}
  {$H+}
{$ENDIF}

{$IF DEFINED(FPC) AND (FPC_FULLVERSION > 20400)}
  {$DEFINE SUPPORTS_UNICODE}
{$IFEND}

{$IFDEF CPUX64}
  {$DEFINE CPU64}
{$ENDIF}

{$H+}
